#include<iostream>
#include<queue>
using namespace std;
typedef long long ll;
int n;
ll ans;
priority_queue<int, vector<int>, greater<int> > pq;
void solve() {
  while(pq.size()>1) {
    int a=pq.top();pq.pop();
    int b=pq.top();pq.pop();
    ans+=a+b;
    // pq.push(ans+=a+b); // 这返回的是ans...
                          // 数据量小那是凑巧了
                          // 要学会自己做数据
    pq.push(a+b);         // 这才是对的...
  }
  cout<<ans<<'\n';
  pq.pop();
  return;
}
int main() {
  cin>>n;
  for(int i=0; i<n; ++i) {
    int tmp;cin>>tmp;
    pq.push(tmp);
  }
  solve();
  return 0;
}